import win32com.client
import os



#base_dir=os.path.dirname(os.path.abspath(__file__)) # 获取当前路径
#xlApp = win32com.client.Dispatch('Excel.Application')
#xlApp.Visible=1 # 显示excel界面
#filename="test.xls"
#fullPath=os.path.join(base_dir,filename) # 得到完整的filepath
#xlBook = xlApp.Workbooks.Open(fullPath, ReadOnly = False) #打开对饮的excel文件
#sht = xlBook.Worksheets('Sheet1') # 打开对应名称的sheet
#sht.UsedRange.ClearContents() # 对当前使用区域清除内容
#nrows=sht.UsedRange.Rows.Count # 获取使用区域的行数
#sht.UsedRange.Copy() #复制
#sht.Activate() # 激活当前工作表
#sht.Cells(1,2).Value = 'title'

def openExcel(filename,sheetname):
    base_dir=os.path.dirname(os.path.abspath(__file__)) # 获取当前路径
    xlApp = win32com.client.Dispatch('Excel.Application')
    xlApp.Visible=0 # 显示excel界面
    fullPath=os.path.join(base_dir,filename) # 得到完整的filepath
    xlBook = xlApp.Workbooks.Open(fullPath, ReadOnly = False) #打开对饮的excel文件
    sht = xlBook.Worksheets(sheetname) # 打开对应名称的sheet
    return xlBook,sht
    
def createExcel(filename,xlBook2,name):
    #os.system('copy test.xls '+filename+'.xls') 
    xlBook2.SaveAs('C:\\Users\\26593\\Desktop\\pyExecl\\data\\'+filename+name+'.xls')

def setExcel(sheet,hang,lie,data):
    sheet.Cells(hang,lie).Value = data

def getExcelData(sheet,hang,lie):
    return sheet.Cells(hang,lie).Value


xlBook1,sht1 = openExcel("data.xlsx","现有实际居住人口摸底调查登记表新增")
xlBook2,sht2 = openExcel("test.xls","Sheet1")

def get数据表(sht1,hang=4):
    户号 = getExcelData(sht1,hang,1)
    姓名 = getExcelData(sht1,hang,2)
    户主关系 = getExcelData(sht1,hang,3)
    性别 = getExcelData(sht1,hang,4)
    年龄 = getExcelData(sht1,hang,5)
    国籍 = getExcelData(sht1,hang,6)
    民族 = getExcelData(sht1,hang,7)
    证件类型 = getExcelData(sht1,hang,8)
    身份证 = getExcelData(sht1,hang,9)
    手机号 = getExcelData(sht1,hang,10)
    人口类型 = getExcelData(sht1,hang,11)
    居住状态 = getExcelData(sht1,hang,12)
    十八类 = getExcelData(sht1,hang,13)
    五大症状 = getExcelData(sht1,hang,14)
    住房性质 = getExcelData(sht1,hang,15)
    居委会 = getExcelData(sht1,hang,16)
    街 = getExcelData(sht1,hang,17)
    单位 = getExcelData(sht1,hang,18)
    楼号 = getExcelData(sht1,hang,19)
    行政村 = getExcelData(sht1,hang,20)
    自然村 = getExcelData(sht1,hang,21)
    户籍地 = getExcelData(sht1,hang,22)
    list01 = [户号,姓名,户主关系,性别,年龄,国籍,民族,证件类型,身份证,手机号,人口类型,居住状态,十八类,五大症状,住房性质,居委会,街,单位,楼号,行政村,自然村,户籍地]
    return list01

def 开始生产(sht1,sht2,hangshu):
    数据 = get数据表(sht1,hangshu)
    print(数据[1]+'-------'+str(hangshu-4))


    setExcel(sht2,6,1,数据[0])
    setExcel(sht2,6,2,数据[1])
    setExcel(sht2,6,3,数据[2])
    setExcel(sht2,6,4,数据[3])
    setExcel(sht2,6,5,数据[4])
    setExcel(sht2,6,6,数据[6])
    setExcel(sht2,6,7,数据[5])
    setExcel(sht2,6,8,"'"+数据[8])
    setExcel(sht2,6,9,数据[9])
    #------------------------------------
    def set人口类型(num):
        str01 = """☑户籍人口\n□常住人口\n□流动人口\n□滞留人口"""
        str02 = """□户籍人口\n☑常住人口\n□流动人口\n□滞留人口"""
        str03 = """□户籍人口\n□常住人口\n☑流动人口\n□滞留人口"""
        str04 = """□户籍人口\n□常住人口\n□流动人口\n☑滞留人口"""
        if num==1:
            return str01
        if num==2:
            return str02
        if num==3:
            return str03
        if num==4:
            return str04
        return

    if 数据[10]=="户籍人口":
        setExcel(sht2,9,1,set人口类型(1))
    elif 数据[10]=="常住人口":
        setExcel(sht2,9,1,set人口类型(2))
    elif 数据[10]=="流动人口":
        setExcel(sht2,9,1,set人口类型(3))
    elif 数据[10]=="滞留人口":
        setExcel(sht2,9,1,set人口类型(4))
    #------------------------------------
    def set居住状态(num):
        str01 = """☑正常居家\n□居家观察\n□集中隔离\n□医疗诊治"""
        str02 = """□正常居家\n☑居家观察\n□集中隔离\n□医疗诊治"""
        str03 = """□正常居家\n□居家观察\n☑集中隔离\n□医疗诊治"""
        str04 = """□正常居家\n□居家观察\n□集中隔离\n☑医疗诊治"""
        if num==1:
            return str01
        if num==2:
            return str02
        if num==3:
            return str03
        if num==4:
            return str04
        return

    if 数据[11]=="正常居家":
        setExcel(sht2,9,2,set居住状态(1))
    elif 数据[11]=="居家观察":
        setExcel(sht2,9,2,set居住状态(2))
    elif 数据[11]=="集中隔离":
        setExcel(sht2,9,2,set居住状态(3))
    elif 数据[11]=="医疗诊治":
        setExcel(sht2,9,2,set居住状态(4))
    #------------------------------------
    setExcel(sht2,9,3,数据[12])
    #------------------------------------
    def set住房性质(num):
        str01 = """☑自有房\n□承租房"""
        str02 = """□自有房\n☑承租房"""
        if num==1:
            return str01
        if num==2:
            return str02
        return

    if 数据[14]=="自有房":
        setExcel(sht2,9,5,set住房性质(1))
    elif 数据[14]=="承租房":
        setExcel(sht2,9,5,set住房性质(2))
    #------------------------------------
    str05 = """城镇实际居住人员填写：\n文化大街 街（路）双湖锦苑小区（单位、酒店）\n"""
    str06 = """\n农村实际居住人员填写：\n      行政村      自然村"""
    setExcel(sht2,9,6,str05+数据[18]+str06)
    return 数据[1]#返回名字

for i in range(1,2):
    名 = 开始生产(sht1,sht2,3+i)
    createExcel(str(i),xlBook2,名)